package com.qm.dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.catalina.User;
import org.apache.ibatis.annotations.Param;

import com.qm.model.*;

public interface AdminStudentDAO {
	 /**
	  * 显示所有学生信息
	  * @return
	  */
	 public ArrayList<Users> showAllStudent();
	 /**
	  * 通过学生ID来删除该学生
	  * @param uid
	  * @return
	  */
	 public int deleteStudentByUid(@Param(value="uid")int uid);
	 /**
	  * 学生信息进行分页处理
	  * @param page
	  * @param count
	  * @return
	  */
	 
	 public ArrayList<Users> studentPaging (@Param(value="page")int page,@Param(value="count")int count);
	 /**
	  * 学生信息条数，为分页的总页面准备
	  * @return
	  */
	 public int studentCount();
	 /**
	  * 学生成绩信息进行分页处理
	  * @param page
	  * @param count
	  * @return
	  */
	 public ArrayList<Score> studentScorePaging (@Param(value="page")int page,@Param(value="count")int count);
	 /**
	  * 学生成绩条数，为分页做准备
	  * @return
	  */
	 public int studentScoreCount();
	/**
	 * 录入学生信息，excael表导入
	 * @param u
	 * @return
	 */
	 public int insertStudents(Users u);
  
	/**
    * 获取学生成绩表，excel表导出
    * @return
    */
	public ArrayList<Score> student_score();
	/**
	 * 新增学生信息
	 * @return
	 */
   public int insertStudent(Users u) ;
   /**
    * 按课程名称和班级名称来查询学生信息分页
    * @param cocourseCode
    * @param cid
    * @param page
    * @param count
    * @return
    */
    public ArrayList<Users> selectStudentByCourse
    (@Param(value="cocourseCode")int cocourseCode,@Param(value="cid")int cid,@Param(value="page")int page,@Param(value="count")int count);
    /**
     * 按课程名称和班级名称来查询学生人数
     * @return
     */
    public int selectStudentCountByCourse(@Param(value="cocourseCode")int cocourseCode,@Param(value="cid")int cid);
	/**
	 * 按学生id来查询学生信息
	 * @param uid
	 * @return
	 */
    public Users   selectStudentByUid(@Param(value="uid")int uid);
    /**
     * 按学生id来修改学生信息
     * @param u
     * @return
     */
    public int changeStudent(Users u);
    /**
     * 按课程名称和班级名称来查询学生成绩
     * @param cocourseCode
     * @param cid
     * @param page
     * @param count
     * @return
     */
    public ArrayList<Score> selectStudentScoreByCourse
    (@Param(value="cocourseCode")int cocourseCode,@Param(value="cid")int cid,@Param(value="page")int page,@Param(value="count")int count);
    /**
     * 按课程名称和班级名称来查询该班级或者课程学生人数
     * @param cocourseCode
     * @param cid
     * @return
     */
    public int selectScoreCountByCourse(@Param(value="cocourseCode")int cocourseCode,@Param(value="cid")int cid);
}
